icon_home

08_그리드 레이아웃

grid 속성은 flex 속성과는 다르게 두 방향(가로, 세로)으로 레이아웃을 만들기 위한 시스템이다.


웹페이지 레이아웃 제작방법
table
float:left, right
display: inline
display: inline-block
display: block
display: table
display: flex(1차원, 가로 or 세로축)
display: grid(2차원, 가로+세로축)
다단 레이아웃


1. 웹페이지 레이아웃 제작방법 _ GRID

1. GRID columns(열, 세로)

열

2. GRID row(행, 가로)

행

3. GRIP gap(여백)

여백

4. GRID lind(여백)

기준선

2. GRID container(부모속성)

grid layout에서 부모 역할을 하기 위한 html 태그 요소이며 display: grid; display: inline-grid속성 값을 지정할 수 있음

부모 요소의 이름은 'wrap, wrapper, container', 자식요소의 이름은 'item'이라고 하며, 그리드는 column, row 아이템으로 구성됨

3. GRID item(자식속성)

gird 레이아웃에서 부모 요소의 자식요소들을 'item'이라고 하며 아이템들을 병합하고자 할 때, 열, 행번호, 영역의 이름을 따로 지정하여 설정 할 수 있음

css학습 참고 사이트 : https://www.w3schools.com/css/css_grid.asp

4. GRID item 속성_ naming 설정하기

열번호와 행번호를 이용하여 범위를 지정하지 않고 아이템에 각각 따로 이름을 설정하여 범위를 지정하는 방법

gird-area : 사용자가 사용할 자식 요소의 이름

1
2
3
4
6
7
8
        /* 그리드 네이밍_자식요소에 네이밍기법을 사용하여 그리드 레이아웃 적용하기 */
        .g_name{
          width: 90%; margin: 10px auto; padding: 6px;
          background: rgb(130,158,130);
          display: grid;
          grid-gap: 6px;
          grid-template-areas:
          "c01 c02 c03"
          "c04 c04 c06"
          "c07 c08 c06";
        }
        .g_name > div{background: #F5EEDC; height: 60px; text-align: center; line-height: 60px;}
        /* 각 셀들의 이름을 지정해주었다면 > gird-template-areas로 각 셀의 위치 지정 후 html 필요없는 셀은 지워줌  > 각 셀에 이름 지정해줌*/
        .g_name > .item1{grid-area: c01;}
        .g_name > .item2{grid-area: c02;}
        .g_name > .item3{grid-area: c03;}
        .g_name > .item4{grid-area: c04;}
        /* .g_name > .item5{grid-area: c05;} */
        .g_name > .item6{grid-area: c06; height: 126px;}
        .g_name > .item7{grid-area: c07;}
        .g_name > .item8{grid-area: c08;}
        /* .g_name > .item9{grid-area: c09;} */
      

실습1. 그리드 레이아웃 기본 개념잡기

item1
item2
item3
item4
item5
item6
item7
item8
item9
        .g_wrap01{
          background: #555; width: 90%;
          margin: 10px auto; padding: 6px;
          display: grid;
          grid-gap: 6px;
          grid-template-columns: repeat(3,auto);
          grid-template-rows:repeat(3,60px);
        }
      
        .g_wrap01 > article{background: #ccc; text-align: center; line-height: 60px;}
      

실습2. 그리드 레이아웃 자식요소 병합하기

item1
item3
item4
item5
item6
item7
item9
        .g_wrap02{
          background: #6db46d; width: 90%;
          margin: 10px auto; padding: 6px;
          display: grid;
          grid-gap:10px;
          grid-template-columns: repeat(3, auto);
          grid-template-rows: repeat(3, 60px);
        }
    
        .g_wrap02 > article{background: #ffff49; line-height: 60px; text-align: center;}
    
        /* 병합하기 병합 했으면 html code에서 병합한 셀 주석 처리로 없애주기 */
        .g_wrap02 > .i01{grid-area: 1/1/2/3;} 
      

실습3. 그리드 레이아웃을 활용한 이미지 갤러리

이미지 갤러리